package bite;

/**
 * Creared with IntelliJ IDEA.
 * Description:链接：https://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e
 * 来源：牛客网
 *
 * 将一个字符串转换成一个整数，要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0
 *
 * 数据范围：字符串长度满足 0 \le n \le 100 \0≤n≤100
 * 进阶：空间复杂度 O(1) \O(1)  ，时间复杂度 O(n) \O(n)
 *
 * 注意：
 * ①字符串中可能出现任意符号，出现除 +/- 以外符号时直接输出 0
 * ②字符串中可能出现 +/- 且仅可能出现在字符串首位。
 * User:yxd
 * Date:2022-03-28
 * Time:19:08
 */
public class Day6_1 {
    public int StrToInt(String str) {
        if(str == null || str.length() == 0)return 0;
        int i = 0;
        int sum = 0;
        int falg = 1;//标志位
        if(i < str.length() && str.charAt(i) == '+'){//第一个是否是符号位
            falg = 1;
            i ++;
        }
        if(i < str.length() && str.charAt(i) == '-'){//第一个是否是符号位
            falg = -1;
            i ++;
        }
        while(i < str.length()){
            char ch = str.charAt(i);
            if(!Character.isDigit(ch)){
                return 0;
            }else{
                sum = sum * 10 + ch - '0';//转化整数
            }
            i ++;
        }
        return sum * falg;
    }
}
